In this paper, we study joint antenna activity detection, channel estimation, and multiuser detection for massive multiple-input multiple-output (MIMO) systems with general spatial modulation (GSM). We first establish a double-sparsity massive MIMO model by considering the channel sparsity of the massive MIMO channel and the signal sparsity of GSM. Based on the double-sparsity model, we formulate a blind detection problem. To solve the blind detection problem, we develop message-passing based blind channel-and-signal estimation (BCSE) algorithm. The BCSE algorithm basically follows the affine sparse matrix factorization technique, but with critical modifications to handle the double-sparsity property of the model. We show that the BCSE algorithm significantly outperforms the existing blind and training-based algorithms, and is able to closely approach the genie bounds (with either known channel or known signal). In the BCSE algorithm, short pilots are employed to remove the phase and permutation ambiguities after sparse matrix factorization. To utilize the short pilots more efficiently, we further develop the semi-blind channel-and-signal estimation (SBCSE) algorithm to incorporate the estimation of the phase and permutation ambiguities into the iterative message-passing process. We show that the SBCSE algorithm substantially outperforms the counterpart algorithms including the BCSE algorithm in the short-pilot regime.